-
Notifications
You must be signed in to change notification settings - Fork 71
Feature/upgrade to 0.1.3 #21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR upgrades the project to version 0.1.3, introducing comprehensive OpenTelemetry observability support, a new Prompt Contributor mechanism, and enhanced tool call tracing capabilities. The changes also include bug fixes, dependency updates, and removal of deprecated features.
Changes:
- Added full OpenTelemetry native API integration with observation contexts, helpers, and lifecycle listeners for distributed tracing
- Introduced tool call tracing with ToolCallRecord model and enhanced GraalCodeExecutor to track tool invocations during code execution
- Refactored Prompt system by replacing PromptBuilder/PromptManager with flexible PromptContributor mechanism
- Updated dependencies including spring-ai-alibaba (1.1.0.0 → 1.1.2.0) and added OpenTelemetry BOM (1.35.0)
- Removed deprecated features including CodeactToolFilter, WhitelistMode, and state propagation mechanisms
- Fixed bugs in FastIntentReactHook, context bindings, and improved Python code generation string escaping
Reviewed changes
Copilot reviewed 59 out of 59 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| pom.xml | Version bump to 0.1.3, spring-ai-alibaba upgrade to 1.1.2.0, OpenTelemetry BOM added |
| assistant-agent-core/* | New observation contexts, helpers, ToolCallRecord model, enhanced GraalCodeExecutor with tracing |
| assistant-agent-evaluation/* | EvaluationObservationLifecycleListener, parent Span support, rawPrompt tracking |
| assistant-agent-extensions/* | AfterAgentLearningHook observation data, AsyncLearningHandler custom executor support, bug fixes |
| assistant-agent-autoconfigure/* | Removed CodeactToolFilter/WhitelistMode, state propagation, subAgentSystemPrompt |
| assistant-agent-common/* | Enhanced ParameterTree with Python string escaping, CodeactTool null-safety improvements |
| README.md | Restructured documentation with links to java2ai.com documentation site |
| CHANGELOG.md | Comprehensive 0.1.3 release notes with added/changed/removed sections |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| import com.alibaba.assistant.agent.common.hook.AgentPhase; | ||
| import com.alibaba.assistant.agent.common.hook.HookPhases; |
Copilot
AI
Feb 4, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicate imports detected. Lines 21-22 repeat the imports from lines 19-20 (AgentPhase and HookPhases). Remove the duplicate import statements.
| /** | ||
| * 存储每个节点的 parent Scope(用于正确的父子关系) | ||
| */ | ||
| private final ConcurrentHashMap<String, Scope> parentScopes = new ConcurrentHashMap<>(); |
Copilot
AI
Feb 4, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The contents of this container are never accessed.
| // Add additional lifecycleListeners to existing config | ||
| if (!lifecycleListeners.isEmpty()) { | ||
| for (com.alibaba.cloud.ai.graph.GraphLifecycleListener listener : lifecycleListeners) { | ||
| compileConfig.lifecycleListeners().offer(listener); |
Copilot
AI
Feb 4, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Method buildConfig ignores exceptional return value of Queue.offer.
| compileConfig.lifecycleListeners().offer(listener); | |
| boolean added = compileConfig.lifecycleListeners().offer(listener); | |
| if (!added) { | |
| logger.warn("CodeactAgentBuilder#buildConfig - reason=无法将LifecycleListener添加到已有CompileConfig, listener={}", | |
| listener != null ? listener.getClass().getName() : "null"); | |
| } |
AQing-527
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
[0.1.3] - 2026-02-04
Added
Observation & Traceability
BaseAgentObservationLifecycleListener: Base lifecycle listener for Agent observabilityCodeactObservationDocumentation: Standardized observation metrics definition (Hook, Interceptor, React, Execution, CodeGen, ToolCall)EvaluationObservationLifecycleListener: Observability listener for Evaluation GraphToolCallRecord: Tool call record model with call order and tool nameExecutionRecord.callTrace: Tool call trace list during code executionToolRegistryBridge: Tool registry bridgeHookObservationHelper: Hook execution observation helperInterceptorObservationHelper: Interceptor execution observation helperOpenTelemetryObservationHelper: General OpenTelemetry observation helperHookObservationContext: Hook observation contextInterceptorObservationContext: Interceptor observation contextReactPhaseObservationContext: React phase observation contextCodeGenerationObservationContext: Code generation observation contextCodeactExecutionObservationContext: Code execution observation contextCodeactToolCallObservationContext: Tool call observation contextPrompt Contributor Module
PromptContributor: Prompt contributor interfacePromptContributorManager: Prompt contributor manager interfaceDefaultPromptContributorManager: Default implementation with priority sorting and dynamic registrationPromptContributorContext: Context interfaceOverAllStatePromptContributorContext: OverAllState-based context implementationEvaluationBasedPromptContributor: Abstract base class for generating Prompts based on evaluation resultsPromptContributorModelHook: Abstract base class for integrating PromptContributor into ModelHookReactPromptContributorModelHook: Prompt contribution Hook for React phaseCodeactPromptContributorModelHook: Prompt contribution Hook for Codeact phasePromptContributorAutoConfigurationprovides out-of-the-box configurationOther Enhancements
ParameterTree: Enhanced parameter tree definition capabilitiesCommonSenseInjectionTool: Common sense injection toolToolContextHelper: Tool context helper classCodeactStateKeys: Codeact state key constantsChanged
Removed
PromptBuilder: Replaced by PromptContributorPromptManager: Replaced by PromptContributorManagerPromptInjectionInterceptor: Replaced by PromptContributorModelHookCodeactToolFilter: Tool filterWhitelistMode: Whitelist mode enum